Rework reverse_iterator::operator[] so as not to use the base iterators operator [], which can cause constness problems. Fixes PR17883 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@231375 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/iterator b/include/iterator index 04ff4c1..7f7e9ee 100644 --- a/include/iterator +++ b/include/iterator 
@@ -575,7 +575,7 @@  _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator-=(difference_type __n)  {current += __n; return *this;}  _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const - {return current[-__n-1];} + {return *(*this + __n);}  };    template <class _Iter1, class _Iter2>